package com.macro.mall.model;

import com.alibaba.fastjson.JSONArray;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class PmProduct implements Serializable {
    @ApiModelProperty(value = "主键")
    private Long id;

    @ApiModelProperty(value = "商品编码")
    private String prodCode;

    @ApiModelProperty(value = "商品名称")
    private String prodName;

    @ApiModelProperty(value = "商品类型")
    private String prodType;

    @ApiModelProperty(value = "商品描述")
    private String prodDesc;

    @ApiModelProperty(value = "商品规格标识")
    private Long prodSpecId;

    @ApiModelProperty(value = "商品状态")
    private Integer status;

    @ApiModelProperty(value = "上架时间")
    private Date validTime;

    @ApiModelProperty(value = "下架时间")
    private Date invalidTime;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "更新人")
    private String updateBy;

    @ApiModelProperty(value = "变更描述")
    private String upDesc;

    @ApiModelProperty(value = "版本号")
    private String version;

    @ApiModelProperty(value = "商品标签")
    private String prodTag;

    private Long serverSpecId;

    private Long prptyPackageId;

    private String mainPicId;
 //    private List<PmProdPic> picList;
    private PmPrptyPackage prprtyPackage;
    private List<PmProdSkuInst> skuInstList;
    private List<PmProdPrpty> prodPrptyList;
    private List<PmProdChannel> prodChannelList;
    private PmProdStockTemp  prodStockTemp;
    private List<PmProdStockSet> prodStockSetList;

    //修改页面展示专用
    JSONArray labelArrayList;
    JSONArray skuTableDataList ;

    List<PmProdServiceType>  prodServiceTypeList;
    List<PmProdReleaseArea>  prodReleaseAreaList;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getProdCode() {
        return prodCode;
    }

    public void setProdCode(String prodCode) {
        this.prodCode = prodCode;
    }

    public String getProdName() {
        return prodName;
    }

    public void setProdName(String prodName) {
        this.prodName = prodName;
    }

    public String getProdType() {
        return prodType;
    }

    public void setProdType(String prodType) {
        this.prodType = prodType;
    }

    public String getProdDesc() {
        return prodDesc;
    }

    public void setProdDesc(String prodDesc) {
        this.prodDesc = prodDesc;
    }

    public Long getProdSpecId() {
        return prodSpecId;
    }

    public void setProdSpecId(Long prodSpecId) {
        this.prodSpecId = prodSpecId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getValidTime() {
        return validTime;
    }

    public void setValidTime(Date validTime) {
        this.validTime = validTime;
    }

    public Date getInvalidTime() {
        return invalidTime;
    }

    public void setInvalidTime(Date invalidTime) {
        this.invalidTime = invalidTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public String getUpDesc() {
        return upDesc;
    }

    public void setUpDesc(String upDesc) {
        this.upDesc = upDesc;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getProdTag() {
        return prodTag;
    }

    public void setProdTag(String prodTag) {
        this.prodTag = prodTag;
    }

    public Long getServerSpecId() {
        return serverSpecId;
    }

    public void setServerSpecId(Long serverSpecId) {
        this.serverSpecId = serverSpecId;
    }

    public Long getPrptyPackageId() {
        return prptyPackageId;
    }

    public void setPrptyPackageId(Long prptyPackageId) {
        this.prptyPackageId = prptyPackageId;
    }

    public String getMainPicId() {
        return mainPicId;
    }

    public void setMainPicId(String mainPicId) {
        this.mainPicId = mainPicId;
    }

    public PmPrptyPackage getPrprtyPackage() {
        return prprtyPackage;
    }

    public void setPrprtyPackage(PmPrptyPackage prprtyPackage) {
        this.prprtyPackage = prprtyPackage;
    }

    public List<PmProdSkuInst> getSkuInstList() {
        return skuInstList;
    }

    public void setSkuInstList(List<PmProdSkuInst> skuInstList) {
        this.skuInstList = skuInstList;
    }

    public List<PmProdPrpty> getProdPrptyList() {
        return prodPrptyList;
    }

    public void setProdPrptyList(List<PmProdPrpty> prodPrptyList) {
        this.prodPrptyList = prodPrptyList;
    }

    public List<PmProdStockSet> getProdStockSetList() {
        return prodStockSetList;
    }

    public void setProdStockSetList(List<PmProdStockSet> prodStockSetList) {
        this.prodStockSetList = prodStockSetList;
    }

    public List<PmProdChannel> getProdChannelList() {
        return prodChannelList;
    }

    public void setProdChannelList(List<PmProdChannel> prodChannelList) {
        this.prodChannelList = prodChannelList;
    }

    public JSONArray getLabelArrayList() {
        return labelArrayList;
    }

    public void setLabelArrayList(JSONArray labelArrayList) {
        this.labelArrayList = labelArrayList;
    }

    public JSONArray getSkuTableDataList() {
        return skuTableDataList;
    }

    public void setSkuTableDataList(JSONArray skuTableDataList) {
        this.skuTableDataList = skuTableDataList;
    }

    public List<PmProdServiceType> getProdServiceTypeList() {
        return prodServiceTypeList;
    }

    public void setProdServiceTypeList(List<PmProdServiceType> prodServiceTypeList) {
        this.prodServiceTypeList = prodServiceTypeList;
    }

    public List<PmProdReleaseArea> getProdReleaseAreaList() {
        return prodReleaseAreaList;
    }

    public void setProdReleaseAreaList(List<PmProdReleaseArea> prodReleaseAreaList) {
        this.prodReleaseAreaList = prodReleaseAreaList;
    }

    public PmProdStockTemp getProdStockTemp() {
        return prodStockTemp;
    }

    public void setProdStockTemp(PmProdStockTemp prodStockTemp) {
        this.prodStockTemp = prodStockTemp;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", prodCode=").append(prodCode);
        sb.append(", prodName=").append(prodName);
        sb.append(", prodType=").append(prodType);
        sb.append(", prodDesc=").append(prodDesc);
        sb.append(", prodSpecId=").append(prodSpecId);
        sb.append(", status=").append(status);
        sb.append(", validTime=").append(validTime);
        sb.append(", invalidTime=").append(invalidTime);
        sb.append(", createTime=").append(createTime);
        sb.append(", createBy=").append(createBy);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", updateBy=").append(updateBy);
        sb.append(", upDesc=").append(upDesc);
        sb.append(", version=").append(version);
        sb.append(", prodTag=").append(prodTag);
        sb.append(", serverSpecId=").append(serverSpecId);
        sb.append(", prptyPackageId=").append(prptyPackageId);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}